웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > js

[자바스크립트] try catch 구문 및 디버깅 관련 알아보기

Last Modified : 2017-04-26 / Created : 2014-11-17
23,645
View Count
try catch 구문은 오류를 발견하고 핸들링하기 위하여 사용됩니다. 이 안에 사용된 함수는 이미 개발자에 의해서 수정이 되었다고 보고 자체 에러를 발생시키지 않기 때문에 오류가 발생하여도 무시할 필요가 있는 경우만 사용되죠. 그렇다면 언제 try catch 구문을 사용할까요?


# try catch 구문은 언제 필요한가

아래의 경우에 try catch 구문을 사용합니다.
  • 써드파티 모듈 등 자체 개발한 앱이 아닌 경우 에러를 회피하기 위함
  • 빠르게 발생한 에러 위치를 제공하기 위함
  • 좀 더 자세한 에러 정보를 제공하기 위함
  • 완성된 어플리케이션인 경우 에러를 출력하지 않기 위함

이 외에도 많으나 기본적으로 위와 같은 경우에 주로 사용됩니다. 그럼 아래는 간단한 사용방법입니다.


# try catch 구문 예제보기
기본적으로 아래와 같이 코드가 사용됩니다.
try {
// 실행할 코드
}
catch(error) {
// 에러시 코드
}
finally {
}


# try catch 예제소스 코드보기

만약 webis라는 변수가 선언되지 않았는데 사용되었다고 가정해봅시다. 이 경우 에러가 발생할 것이며 아래와 같이 에러를 사용자가 직접 컨트롤할 수 있습니다.
try {
    alert(webis);
    // webis 변수명이 선언되지 않아 에러가 날 것이 확실함
} catch(error) {
    // catch구문은 에러가 발생시 해당 내용을 실행함 
    test = error.message;
}


만약 위 try{} 안에 위치한 함수에서 어떤 에러가 발생하면 catch에 있는 함수를 실행하게하며 catch 구문에서 발생한 에러에 대한 정보를 객체를 생성하여 저장합니다. 그리고 이에 대한 정보는 error.message 프로퍼티를 통해 확인할 수 있습니다. 위 함수를 실행하면 다음과 같이 출력됩니다.

"webis is not defined"

보시는 바와 같이 webis의 자료형태가 문자가 아닌 변수로 입력되어 undefined 오류가 났음을 출력해 보여주게됩니다.
참고로 finally{} 구문을 아래에 추가할 수도 있습니다. 이는 옵션사항으로 에러발생의 유무에 상관없이 항상 실행되는 구문입니다.


참고로 이와 함께 사용할 수 있는 throw 연산자도 알아두면 좋습니다. try catch 구문은 throw 연산자와도 함께 많이 사용되는데 throw 연산자는 try catch 구문에서 에러가 발생하면 나타낼 catch구문의 에러를 커스텀 에러로 반환하게 해줍니다. 이를 통해 브라우저에서 발생한 에러와 try catch 구문을 통해 발생한 에러를 구분하게 해주는 매우 유용한 역활을 합니다.

Previous

[jQuery] toggleClass() 메소드 알아보기

Previous

[자바스크립트] 일정 시간마다 반복 실행하는 함수, setInterval() {}